package cn.wolfcode.luowowo.controller;


import cn.wolfcode.luowowo.annotation.UserParamLogin;
import cn.wolfcode.luowowo.cache.service.IPersonStatisService;
import cn.wolfcode.luowowo.cache.vo.PersonStatisVO;
import cn.wolfcode.luowowo.domain.Banner;
import cn.wolfcode.luowowo.domain.Person;
import cn.wolfcode.luowowo.domain.UserInfo;
import cn.wolfcode.luowowo.service.IBannerService;
import cn.wolfcode.luowowo.service.IPersonService;
import cn.wolfcode.luowowo.util.JsonResult;
import com.fasterxml.jackson.databind.annotation.JsonAppend;
import com.sun.org.apache.regexp.internal.RE;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.annotation.Id;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@RestController
@RequestMapping("persons")
public class PersonController {

    @Autowired
    private IPersonService personService;

    @Autowired
    private IPersonStatisService personStatisService;

    /**
     * 找寻游记前五 显示在首页
     * @return
     */
    @GetMapping("/users")
    public Object users(String owenerId,@UserParamLogin UserInfo userInfo){

        // 通过传上来的主人Id 和当前登陆对象的Id 若果当前登陆对象的Id 不存在在这个主人对象的访客ID 集合中 .就要把这个访客的Id加进去,同时如果不是自己访问自己.总访问量也要加1
        List<UserInfo>  list =  personService.findByUserId(owenerId,userInfo.getId());
        // 通过主人Id 拿到 主人对象 进一步拿到总访问量量.同时进行
        Person person = personService.findByUId(owenerId);
        // 这个是拿到今日访问量 .传当前用户Id 和主人id  进行对比 .不是自己访问自己 今日访问量也要加 1
        personStatisService.incurnTodayView(owenerId,userInfo.getId());

        // 通过传上来的主人ID 在redis中找到 今日访问人数的value
        int toDayView = personStatisService.getToDayView(owenerId);
        // set 回主人对象中一起返回回去
        person.setTodayView(toDayView);

//        // 这个是拿到今日访问量 .传当前用户Id 和主人id  进行对比 .不是自己访问自己 今日访问量也要加 1
//        personStatisService.incurnTodayView(owenerId,userInfo.getId());

       Map map = new HashMap();
       map.put("id",owenerId);
       map.put("list",list);
       map.put("person",person);
        return JsonResult.success(map) ;
    }


    @GetMapping("/list")
    public Object list(String OwenId){
        // 通过传上来的主人Id 找到所有访客返回回去
        List<UserInfo>  list =  personService.findByUserIdAll(OwenId);
        return JsonResult.success(list) ;
    }




}
